BIPROGY Foresight in sight BIPROGY Foresight in sight

要件定義とは?具体的な進め方から要件定義書に必要な項目までわかりやすく解説

要件定義とは?

「せっかく時間をかけて開発した基幹システムが、実際の業務で使えない」
「予算を大幅に超過してERPの導入プロジェクトがとん挫した」

こうした失敗の多くは、要件定義の不備が原因です。システム開発プロジェクトにおいて、要件定義は成功を左右する最も重要な工程のひとつとされている重要な工程なのです。

本記事では、要件定義の基本概念から具体的な進め方、失敗を避けるポイントまで実践的に解説します。ERPや基幹システムの導入・運用に関わるプロジェクトマネージャーやSE、発注企業の担当者などの要件定義に対する理解度を高め、プロジェクト成功確率を大幅に向上させるためにもぜひ参考にしてください。

要件定義とは

要件定義とは、システム開発プロジェクトにおいてユーザーの要求を具体的で実現可能な仕様に変換し、開発すべきシステムの機能や性能、制約条件を明確に定義する作業です。言い換えれば、「ユーザーが本当に必要としているシステムは何か」を明確にし、それを開発チームが理解できる形で文書化する作業といえます。

例えば、販売管理、在庫管理、会計処理など各業務の現状と課題を整理し、必要な機能(例:在庫のリアルタイム把握、伝票の自動発行)を明確にすることなどです。

システム開発の上流工程(企画の次工程)に位置し、プロジェクト全体の成否を左右する重要な役割を担っています。ユーザーの曖昧な要望を、技術的に実現可能で具体的な仕様に落とし込む、重要なプロセスとなります。

要件定義では主に「機能要件」と「非機能要件」の2つを定義します。機能要件はシステムが提供すべき具体的な機能を、非機能要件は性能やセキュリティなどの品質面を規定します。要件定義は、以下のシーンで用いられるものです。

  • 新規システムの開発
  • 既存システムのリニューアル
  • 業務システムの改修 など

通常、要件定義はプロジェクトマネージャーやシステムエンジニア(SE)が主導し、ユーザー企業の業務担当者やIT部門と連携しながら進められます。大規模なプロジェクトでは、要件定義専門のチームが組織されることもあります。初期に行う工程であり、もっとも重要な工程でもあるのです。

要件定義と要求定義の違い

要求定義とは、ユーザーが抱える課題や問題点を整理し、システム化によって解決したい内容を明確にする工程です。「現在の業務で何に困っているか」「どのような改善を求めているか」といった、ユーザーの生の要望や期待を収集・整理する段階です。

要件定義との違いは、その目的と内容にあります。要求定義は「何を解決したいか」という課題の明確化に重点を置くのに対し、要件定義は「どのように解決するか」という具体的な解決方法の策定に重点を置くものです。例えば、要求定義では「営業効率を向上させたい」という抽象的な要望を整理し、要件定義では「顧客管理システムでリード管理機能と営業進捗追跡機能を実装する」という具体的な仕様に変換します。

要件定義と基本設計の違い

基本設計とは、要件定義で決定された仕様を実現するための技術的な設計を行う工程です。システムのアーキテクチャやデータベース設計、画面設計や帳票設計などの具体的な技術仕様を策定します。

要件定義と基本設計は、「何を作るか」と「どう作るか」の観点で異なります。要件定義では業務要件を中心とした「システムに求められる機能や性能」を定義しますが、基本設計では技術要件を中心とした「システムを実現するための技術的手法」を設計するものです。

基本設計では、画面レイアウトや帳票レイアウト、システムインターフェースなどの具体的な外部仕様を決定し、ユーザーと仕様をすり合わせる最後のチャンスという側面もあります。要件定義はビジネス視点での仕様策定、基本設計は技術視点での設計という位置づけであることを覚えておきましょう。

なぜ要件定義が必要なのか?

ERPや基幹システムの開発・導入に際して、要件定義が必要な理由は以下のとおりです。

  • 予算やリソースの最適化を図るため
  • 開発・運用スケジュールを明確にするため
  • 運用後のギャップを無くすため

要件定義を適切に実施することで、プロジェクトのリスクを大幅に軽減し、ユーザーの期待に応えるシステムを効率的に開発することができます。システム開発プロジェクトの失敗要因として要件定義の不備が見られるケースは少なくありません。

要件定義が不十分な場合、プロジェクトの進行に伴って仕様変更が頻発し、予算超過やスケジュール遅延、品質低下といった問題が発生する可能性が高まってしまうでしょう。

予算やリソースの最適化を図るため

要件定義によって、プロジェクトに必要な機能や作業範囲が明確になることで、適切な予算計画とリソース配分が可能になります。システムの規模や複雑さを把握できるため、必要な開発期間や要員数を見積もることができます。

  • 顧客管理システムの構築に必要な機能:20個
  • 開発期間:6ヶ月
  • 要員:5名

一方、要件定義が不十分な場合、プロジェクト途中で「実は在庫管理機能も必要だった」といった追加要求が発生し、予算を大幅に超過してしまうリスクがあります。これらのリスクを回避するには、要件定義を適切に行う必要があるのです。

開発・運用スケジュールを明確にするため

要件定義によって開発すべき機能や仕様が具体化されることで、各工程の作業量を見積もり、現実的な開発スケジュールを策定することができます。また、システム運用開始後の保守・改修計画も含めた長期的なスケジュールの策定も可能です。

システムの導入において、開発・運用スケジュールを明確にすることは、事業計画との整合性を保つために重要です。適切に要件定義を行えると、「4月に要件定義完了、8月にシステム開発完了、10月から本格運用開始」といったマイルストーンを設定できます。

もし要件定義が曖昧なままである場合、開発途中での仕様変更により「当初予定していた10月の運用開始が翌年の4月に延期」といった大幅なスケジュール変更が発生する可能性があります。開発するシステムによっては業務に深刻な影響を及ぼす恐れもあるでしょう。そのような事態を回避するためにも、要件定義は重要です。

運用後のギャップを無くすため

要件定義において、ユーザーの業務フローや運用方法を詳細に検討することで、システム運用開始後に発生しがちな「思っていたのと違う」というギャップを事前に防ぐことができます。実際の業務に即したシステム仕様を定義することで、運用の円滑化を図れるでしょう。

システムの導入において、運用後のギャップを無くすことは、投資対効果を最大化するために重要です。適切に要件定義を行えた場合、「営業担当者が外出先でもスマートフォンから顧客情報を更新でき、日報作成時間を50%短縮」といった具体的な効果を実現できるかもしれません。

しかし、要件定義が不十分だと、運用開始後に「入力項目が多すぎて実際の業務で使えない」「必要な承認機能が実装されていない」といった問題が発覚しかねません。また、運用できるようにするために追加の改修費用が発生するリスクがあります。まずは開発後の業務フローや運用方法を明確にしてから、開発に取り掛かるようにしてください。

要件定義の基本的な進め方

要件定義の進め方は以下の手順で行います。

  1. ユーザーの要求をヒアリングする
  2. 要求内容ごとに対応可否を検討する
  3. 要件定義書を作成する

この3段階のプロセスを体系的に実施することで、ユーザーのニーズを正確に把握できるだけではなく、技術的に実現可能な仕様として整理することができるでしょう。各段階では、ユーザーとの継続的なコミュニケーションを図りながら、段階的に要件の精度を高めていくことが重要です。

なお、ウォーターフォール開発では事前にすべての要件を確定させますが、アジャイル開発では反復的に要件を見直すアプローチを取ることもあります。本記事ではウォーターフォール開発の要件定義の流れとして解説します。

1. ユーザーの要求をヒアリングする

ユーザーの要求をヒアリングする段階では、以下の5W2Hを重視した情報収集を心がけましょう。

  • Who(誰が使うのか)
  • What(何を実現したいのか)
  • When(いつまでに必要か)
  • Where(どこで利用するのか)
  • Why(なぜ必要なのか)
  • How(どのように実現するか)
  • How much(予算はどの程度か)

現在の業務プロセスや抱えている課題、システム化によって実現したい目標を詳細に聞き取ります。

ポイントは、ユーザーが口にした表面的な要望だけでなく、その背景にある真のニーズを理解することです。例えば、ユーザーから「売上データを自動で集計したい」という要求があった場合、単に集計機能を作るだけでなく、次のような疑問を持ってヒアリングすることが重要です。

  • なぜ自動化が必要なのか
  • 現在の手作業でどのような問題が発生しているのか
  • 集計結果をどのように活用したいのか

また、エンドユーザーだけでなく、管理者や経営層など、システムに関わるすべてのステークホルダーから意見を収集することが重要です。

2. 要求内容ごとに対応可否を検討する

収集した要求内容を整理し、技術的実現可能性や予算制約、スケジュール制約の観点から対応可否を検討します。要求を「必須機能」「推奨機能」「将来機能」に分類し、プロジェクトの制約条件を考慮して実装範囲を整理しましょう。

この段階では、すべての要求を鵜呑みにするのではなく、ビジネス価値と実装コストのバランスを考慮して優先順位を付けることが重要です。例えば、「100種類の帳票出力機能」という要求があった場合、次のように対応する必要があります。

  • 実際の利用頻度を調査する
  • よく使われる20種類は必須機能として分類する
  • 残り80種類は将来対応機能として分類する

技術的制約により実現困難な要求については、代替案を提示してユーザーと協議してください。対応可日と同時に優先順位を付けることで、開発スケジュールを明確にできるようになります。

3. 要件定義書を作成する

要件定義書とは、検討・合意された要件をまとめた文書で、開発チーム全体で共有されるプロジェクトの設計図です。システムの目的や機能、性能や制約条件などを体系的に整理し、後工程での設計・開発の指針となります。

要件定義書作成における進め方は、まず全体構成を決定し、各要件を論理的に整理して記載します。記載内容は具体的で曖昧さを排除し、第三者が読んでも理解できる表現を心がけましょう。

要件定義書を作成する際は、技術者以外のステークホルダーも理解できる平易な表現を使用することが重要です。例えば、「認証機能」について記載する際、単に「シングルサインオン対応」と書くのではなく、「社員は一度ログインすれば、他のシステムにも自動的にログインできる機能」といった具体的な説明を併記するなどです。

また、要件定義書は関係者全員で内容を確認し、認識の齟齬がないことを確認してから確定してください。関係者の認識がズレていると、開発途中や完成後に作り直さなければならなくなりかねません。要件定義書は分かりやすく書くことを心掛けるとともに、関係者全員で認識合わせしておくべきものなのです。

要件定義書に必要な項目

要件定義書には、以下の項目を記載する必要があります。

記載する項目 内容
プロジェクト概要 システム化の背景、目的、期待効果、対象範囲
業務要件 現行業務フロー、新業務フロー、業務ルール、承認プロセス
機能要件 システムが提供すべき機能の詳細仕様、入出力項目、処理内容
非機能要件 性能要件、可用性要件、セキュリティ要件、操作性要件
技術要件 システム構成、開発言語、データベース、インフラ要件
制約条件 予算制約、スケジュール制約、技術制約、法的制約
プロジェクト計画 開発スケジュール、体制図、役割分担、マイルストーン

れらの項目を網羅的に記載することで、プロジェクト関係者が共通の理解を持ち、後工程での設計・開発を円滑に進めることができます。

なお、要件定義書に決まったフォーマットは存在せず、プロジェクトの規模や特性に応じて調整します。IPA(独立行政法人情報処理推進機構)*の実践ガイドブックなども参考資料として活用可能です。要件定義書は、プロジェクト進行中の判断基準としても活用される重要な成果物として位置づけましょう。

要件定義する際のポイント

ERPや基幹システムの開発・導入における、要件定義のポイントは以下のとおりです。

  • ユーザーの業務プロセスまで把握する
  • ユーザー側の分担や責任を明確にする
  • プロジェクト管理ツールなどを用いる

上記のポイントを意識することで、より精度の高い要件定義を実施し、プロジェクトの成功確率を向上させることができます。要件定義は技術的な作業だけでなく、人や組織との協働が重要な要素となるため、コミュニケーションや管理手法にも注意を払わなければなりません。それぞれ詳しく解説します。

ユーザーの業務プロセスまで把握する

要件定義を円滑に進めるためには、システム化の対象となる業務だけでなく、その前後の業務プロセス全体を把握することが重要です。業務の全体像を理解することで、システム化によって生じる業務フローの変更や、他の業務への影響を事前に検討できます。

ユーザー側の業務オペレーションに根本的な課題がある場合、システム開発だけでは問題を解決できないケースがあります。特に要件定義では、システムへの要求の裏にある背景や状況まで把握し、最適な解決策を提案することが求められることもあるでしょう。そのため、承認プロセスが複雑すぎる場合、システム化よりもまず業務プロセスの見直しが必要です。

このような業務プロセスの分析では、Fit&Gap(フィットアンドギャップ)分析といった手法が活用されます。Fit&Gap分析は、現行業務とシステムの標準機能との差異を明確にし、カスタマイズの必要性や業務変更の必要性を判断する手法です。

また、Fit to Standard(フィット・トゥ・スタンダード)という、業務をシステムに合わせる考え方もあります。こちらは、基本的にシステムをカスタマイズせず、標準機能で業務を行うアプローチです。Fit&Gap分析については、以下の記事で詳しく解説します。ぜひ参考にしてください。

ユーザー側の分担や責任を明確にする

要件定義を円滑に進めるためには、プロジェクトにおけるユーザー側とベンダー側の分担や責任を明確に定義することが重要です。

ときどき、事業の方向性や業務ルールの決定、利用者の教育など、ユーザー側で固めるべき項目までベンダーに丸投げされるケースがあります。このような状況では、ベンダーが推測で要件を定義することになり、後でユーザーの期待と異なる結果となるリスクが高まってしまうでしょう。

責任の所在まで明確にしておかないと、要件定義が進まなかったり、決定事項の変更が頻発したりする可能性が高まります。ユーザー側の責任がどこまであるのか、どのような業務を分担していくのかを明確にしていく必要があります。

プロジェクト管理ツールなどを用いる

プロジェクト管理ツールとは、タスクの進捗状況をリアルタイムで可視化し、チーム間の情報共有を効率化するクラウドベースのソフトウェアです。代表的なツールには、JiraやJooto、Backlogなどがあり、月額500円〜1,500円程度のアカウント料金で利用できます。

要件定義を円滑に進めるために、プロジェクト管理ツールを導入することで、複雑な要件定義プロセスを体系的に管理できます。多数のステークホルダーが関与する要件定義では、情報の共有や進捗の可視化が重要な成功要因となるでしょう。

プロジェクト管理ツールでできることには違いがあるものの、基本的には以下のとおりです。

  • 要件の一元管理と変更履歴の追跡
  • ステークホルダー間のコミュニケーション促進
  • タスクの進捗状況のリアルタイム把握
  • 課題やリスクの早期発見と対応
  • 文書やファイルの集中管理と版数管理

プロジェクト管理ツールを用いる場合と用いない場合では、要件定義の進めやすさに大きな違いが生まれます。ツールを活用することで、情報の散逸や認識の齟齬を防ぎ、効率的な要件定義が可能になるでしょう。一方、ツールを使わない場合、メールやExcelファイルでの情報共有となり、最新情報の把握や変更管理が困難になる傾向があります。

最新情報や変更管理をリアルタイムで共有するためにも、プロジェクト管理ツールを活用することをおすすめします。

まとめ

要件定義は、ERPや基幹システムなどの開発を左右する最も重要な工程です。ユーザーの要求を正確に把握し、技術的に実現可能な仕様として整理することで、予算やスケジュールの最適化、運用後のギャップ解消を図ることができます。大枠を作って満足するのではなく、要件定義書で開発のすべてがわかるようなものを作りましょう。

要件定義は多くの調査でシステム開発成功の重要な要因として位置づけられるものです。本記事で解説した進め方やポイントを参考に、精度の高い要件定義を実践し、システム開発プロジェクトの成功を実現してください。

ERPや基幹システムに関連するコラム

  • *Hybrishは、BIPROGY株式会社の登録商標です。
  • *その他記載の会社名および商品名は、各社の商標または登録商標です。